1. Technical Field
The present invention relates in general to data processing systems and in particular to communication between networked data processing systems. More particularly, the present invention relates to Ethernet based communication between networked data processing systems.
2. Description of the Related Art
Standard telecommunications networks are generally linked to each other using protocols based on the Open Systems Interconnection (OSI) model, an internationally accepted framework of standards for communication between different systems produced by different manufacturers. The OSI model creates an open systems networking environment where any manufacturer""s data processing system, when connected to a network, shares data with any other system on that network or linked network.
The OSI model organizes the communication process into seven layers of interrelated protocols in a layered sequence. FIG. 3A depicts two OSI stacks 304 and 308, one transmitting and one receiving, illustrating the seven layers of the OSI model. The layers are as follows:
Physical Link provides transmission of signals and activation and deactivation of physical connections;
Data Link includes signal synchronization, error correction; sequencing and flow control. This layer also provides a data transmission link across one or several physical connections;
Network Layer provides routing and switching functions;
Transport Layer utilizes the preceding three layers;
Session Layer provides the means to establish a session connection and to support an orderly exchange of data and related control functions for a particular communication service;
Presentation Layer provides means for data formatting and code conversion; and
Application Layer applies required transmission protocols to data to be transmitted.
Referring to FIG. 3A, a high-level block diagram of the ethernet network communication process, as it pertains to sending and receiving stations, is depicted. Transmit station 302 has data to transmit and the process of transmission begins in the Application layer. Application layer 304 determines the data to be transmitted and applies the required transmission protocol. Each layer modifies the data with transit and identification information. Prior to transmission, the data is broken into multiple sections called xe2x80x9cpacketsxe2x80x9d and each packet receives a header with source and destination information. The packets are then packaged in a larger Internet Protocol (IP) packet termed a xe2x80x9cdatagramxe2x80x9d. The datagram is passed to a subsequent layer and broken into data frames, specific to the network, with headers attached prior to transmission and are usually transmitted in order, but they may not arrive at receiving station 310 in order. Because packets contain sufficient information to be routed from source to destination and there is information within the datagram to re-assemble the datagram at receiving station 310, it doesn""t matter if the data is transmitted or received in order. The data is passed through each layer at transmit station 302 and transmitted on communications network channel 306. As the data is received, the headers are stripped by receiving station layers 308 as the frame is passed from layer to layer in receiving station 310. The Application layer at receiving station 310 receives the transmitted data with all the headers stripped from the data that were added by transmitting station 302.
FIG. 3B illustrates a TCP/IP protocol transmission utilizing the OSI model. OSI model 312 characterizes the seven layers of functionality. Embodiment of transmission by TCP/IP protocol on an Ethernet is shown in conceptual layers 314. Viewing data progression 316 and conceptual layers 314, a data stream (or messages) is originated by the application layer and passed to the Transport layer which adds a TCP header and forms the data into a transport packet. The transport packet is then passed to the Internet Protocol layer which installs a header to the transport packet and depending on the size of the packet may segment the data into smaller packets. An IP datagram (maximum is 65000 bytes) may be formed and comprises a header containing information required to deliver the datagram, including the total length of the datagram, to a destination station. Additionally, the header contains information concerning the source, whether a datagram may be fragmented, offset that identifies packets for reassembling, protocol in the data portion, etc. IP datagrams may then be passed to a Network Interface which reduces the IP datagrams to Ethernet frames (maximum data is 1500 bytes) and passes the resulting packets (frames) to the Hardware layer which then transmits the Ethernet frames onto the Ethernet.
Ethernet communications are accomplished by transporting digital communications in xe2x80x9cframesxe2x80x9d across a network of computers or xe2x80x9cstations.xe2x80x9d A frame, the basic data transmission unit in bit oriented protocols, is a discrete group of data bits in a particular protocol, with flags to indicate a beginning and an end of the frame. The frame usually contains addressing and error checking information.
On an Ethernet based network, multiple stations are connected to a shared signaling system. All the Ethernet signals are serially transmitted to every connected station. The header applied to data to be transmitted includes Medium Access Control (MAC) and consists of a preamble, destination address, source address and the data type segments of the frame. MAC determines access to a shared channel within an Ethernet medium (signaling system).
A unique address (48 bits) is assigned to Ethernet cards as they are manufactured. As a frame is placed in the channel of an Ethernet medium, all connected Ethernet cards check the MAC for the destination address. The Ethernet card compares the destination address with the address it was manufactured with. Only the Ethernet card with the destination address will read the entire frame. All the other cards on the network will ignore the data in the frame when the other cards determine the address does not match with their manufacture installed address.
As Ethernet networks become faster, data generated and transmitted across the network must be handled faster. Performance suffers if hardware/software doesn""t keep up. As discussed above, the processor takes data to be transmitted and utilizing software, breaks the data into Ethernet frames. The frames are stored in memory and then transmitted with the appropriate headers. Breaking up the data into Ethernet frames and then transmitting them requires microprocessor time. Each frame, whose maximum data length is 1500 bytes, would require an interrupt as the frame has completed transmitting. If there is a considerable amount of data to be transmitted, a datagram may be used to provide continuity, but the frames still have to be constructed requiring at least two interrupts per frame.
Referring to FIG. 4A, a high-level flow diagram of an Ethernet frame transmission process on a network, is illustrated. The process begins with step 400, which depicts the operating application on the network station designating data to transmit onto the network. The process then passes to step 402, which illustrates each functional layer adding a header to each frame of data. Next the process proceeds to step 404, which depicts the data link layer storing each frame in station memory. The process continues to step 406, which depicts software prompting the hardware (hardware refers to the hardware layer, including registers on board the ethernet chip, of the station which interfaces with the network) to retrieve a frame from memory and transmit the frame.
The process then passes to step 408, which illustrates hardware transmitting a frame. The process continues to step 409 which depicts hardware in the transmitting station generating an interrupt after transmitting a frame. The process next proceeds to step 410, which illustrates the receiving station receiving the frames transmitted by the originating station and generating an interrupt, which is sent to the station microprocessor, after each frame. The process then passes to step 412, which depicts a determination of whether all frames have been transmitted. If not, the process returns to step 408 and repeats step 408 through step 410. If all frames have been transmitted, the process proceeds instead to step 414, which depicts the data link layer in the receiving station removing the data link header and passing the frame onto the network layer. The process continues to step 416, which illustrates all frames being stripped of the headers at layers corresponding to layers of the transmitting station and receiving the transmitted data.
As indicated in the above high-level flow diagram, each frame receives an interrupt, prompted by the software, as it is transmitted resulting in an unnecessary load on the processor
An IP datagram may be segmented into multiple Ethernet frames and each Ethernet frame generally requires individual handling. When an Ethernet frame is transmitted, an interrupt is usually generated once the frame has completed transmitting. A transmission of multiple frames requires multiple interrupts to be generated requiring processor time. A datagram, with a full complement of 1500 byte frames still requires frame interrupts which may amount to 32 interrupts with a full sized datagram.
It would be desirable therefore, to reduce the processing load on the station microprocessor and thus free up the microprocessor to accommodate other applications and improve processor performance. It would also be desirable to provide a method that would reduce workload on the processor caused by interrupts for Ethernet frames. Additionally, it would also be desirable to reduce the workload on a receiving station""s processor by reducing the need to correlate each Ethernet frame.
It is therefore one object of the present invention to provide a method and apparatus that will reduce the processing load on the computer processing unit.
It is another object of the present invention to provide a method and apparatus for improving data transmission rate on an Ethernet network.
It is yet another object of the present invention to provide a method and apparatus for handling data transmission on an Ethernet network more efficiently.
The foregoing objects are achieved as is now described. A method and apparatus is provided for an Ethernet station that transmits blocks of Ethernet frames in datagrams utilizing a pointer at the beginning of the datagram, rather than interrupts at the beginning and end of each data frame. Hardware receives a pointer to the start of an IP datagram and is then prompted to transmit. Hardware forms the frame header and sends out the IP datagram as a series of frames with only one interrupts signaling the end of the datagram. As a transmission comes in to the receiving station, hardware will check first to see if this is part of an IP datagram currently being received. If not, the frame is stored in a new location. If it is part of a datagram that is currently being received, hardware will check an offset in the IP header to determine where the new frame should be placed so the IP datagram is assembled properly. An interrupt is generated as the final frame is received by the receiving station, thus eliminating multiple interrupts after each frame at both transmitting and receiving station.
The above as well as additional objects, features, and advantages of the present invention will become apparent in the following detailed written description.